home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / raytrace / radiance / simplerd.lha / simplerad / FinalFTP / Light / adj.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-05-21  |  2.1 KB  |  62 lines

  1. /**********************************************************************/
  2. /* adj.h:                                                             */
  3. /*                                                                    */
  4. /* Copyright (C) 1992, Bernard Kwok                                   */
  5. /* All rights reserved.                                               */
  6. /* Revision 1.0                                                       */
  7. /* May, 1992                                                          */
  8. /**********************************************************************/
  9. /* requires geo.h, struct.h */
  10.  
  11. #ifndef ADJ_H
  12. #define ADJ_H
  13.  
  14. #define VTX_TOLERANCE 0.0001     /* If within this distance, same vtx */
  15.  
  16. /**********************************************************************/
  17. /* Vertex octree structures                                           */
  18. /**********************************************************************/
  19. #define num_octants 8                         /* number of sons */
  20.  
  21. /* Note from front of volume: 
  22.  * right = east (E), left = west (W), top = nort(N) and 
  23.  * bottom = south (S), F is front and B is back
  24.  *
  25.  * Also positive X is east, positive Y is front, and
  26.  * positive Z is north
  27.  */
  28. #define NWF 0                             /* Octant labels */
  29. #define NEF 1                             
  30. #define SWF 2
  31. #define SEF 3
  32. #define NWB 4
  33. #define NEB 5
  34. #define SWB 6
  35. #define SEB 7
  36.  
  37. typedef struct Vertex_tree {              /* Vertex octree node */
  38.   Vertex *vtx;                            /* Vertex = cutting point 
  39.                          in octant */
  40.   struct Vertex_tree                      /* Children */
  41.     *child[num_octants];
  42.   struct Vertex_tree *father;             /* Father node */
  43. } Vertex_tree;
  44.  
  45. /**********************************************************************/
  46. extern int vsame();
  47.  
  48. extern Vertex_tree *VTree_Create();
  49. extern Vertex_tree *VTree_NodeCreate();
  50. extern void VTree_NodeAddChild();
  51. extern int Vtree_VectorOctant();
  52. extern int VTree_NodeFind();
  53.  
  54. extern Vertex *Vertex_Create();
  55. extern void LinkPoly_ToVertex();
  56. extern void LinkVertex_ToPoly();
  57.  
  58. extern void Create_Subdivision_Points();
  59. extern void Subdivide_Polygon();
  60.  
  61. #endif /* ADJ_H */
  62.